(function () {

  'use strict';

  angular
  .module('app')
  .controller('PreSalesInfoController', PreSalesInfoController);

  PreSalesInfoController.$inject = ['$scope', '$http', '$window', '$timeout', '$location', '$state', '$stateParams', 'API', 'ENUM', 'AppAuthenticationService', 'APIPreSalesService', 'PreSalesConfirmService', 'CartModel','ConfigModel'];

  function PreSalesInfoController($scope, $http, $window, $timeout, $location, $state, $stateParams, API, ENUM, AppAuthenticationService, APIPreSalesService, PreSalesConfirmService, CartModel,ConfigModel) {

      var part_id = $stateParams.part_id;
      $scope.product = null;
      $scope.cartModel = CartModel;
      $scope.touchPurchase = function () {
          if ( !AppAuthenticationService.getToken() ) {
              $scope.goSignin();
              return;
          }

          var product = $scope.product;
          PreSalesConfirmService.clear();
          PreSalesConfirmService.product = product;

          $state.go('pre-sales-confirm', {

          });
      };

      $scope.isLoading = false;
      $scope.isLoaded = false;

      function _reload() {
        $scope.isLoading = true;

        API.goods.getOnePart({part_id:part_id}).then(function(product){
            $scope.isLoaded = true;
            $scope.product = product;
            var config = ConfigModel.getConfig();
            if(config){
                var wechat = config['wxpay.web'];
                if(wechat){
                    _initConfig(wechat, $scope.product);
                }
            } else {
                ConfigModel.fetch().then(function(){
                    var config = ConfigModel.getConfig();
                    if(config){
                        var wechat = config['wxpay.web'];
                        if(wechat){
                            _initConfig(wechat, $scope.product);
                        }
                    }
                });
            }
        });
      }

      function _initConfig(wechat, product){

                if ( !wechat )
                    return;

                var url = product.share_url?product.share_url:product.name;
                wx.config({
                    debug: GLOBAL_CONFIG.DEBUG, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                    appId: wechat.appId, // 必填，公众号的唯一标识
                    timestamp: wechat.timestamp, // 必填，生成签名的时间戳
                    nonceStr: wechat.nonceStr, // 必填，生成签名的随机串
                    signature: wechat.signature,// 必填，签名，见附录1
                    jsApiList: ['chooseWXPay',
                        'onMenuShareAppMessage',
                        'onMenuShareTimeline',
                        'onMenuShareAppMessage',
                        'onMenuShareQQ'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
                });

                wx.ready( function() {
                    wx.onMenuShareTimeline({
                        title: '土猪预售详情', // 分享标题
                        desc:product.name,
                        link: url, // 分享链接
                        imgUrl: product.cover_img, // 分享图标
                        success: function () {
                            // 用户确认分享后执行的回调函数
                        },
                        cancel: function () {
                            // 用户取消分享后执行的回调函数
                        }
                    });

                    wx.onMenuShareAppMessage({
                        title: '土猪预售详情', // 分享标题
                        desc:product.name,
                        link: url, // 分享链接
                        imgUrl: product.cover_img, // 分享图标
                        success: function () {
                            // 用户确认分享后执行的回调函数
                        },
                        cancel: function () {
                            // 用户取消分享后执行的回调函数
                        }
                    });

                    wx.onMenuShareQQ({
                        title: '土猪预售详情', // 分享标题
                        desc:product.name,
                        link: url, // 分享链接
                        imgUrl: product.cover_img, // 分享图标
                        success: function () {
                            // 用户确认分享后执行的回调函数
                        },
                        cancel: function () {
                            // 用户取消分享后执行的回调函数
                        }
                    });
                    wx.onMenuShareWeibo({
                          title: '土猪预售详情', // 分享标题
                        desc:product.name,
                        link: url, // 分享链接
                        imgUrl: product.cover_img, // 分享图标
                        success: function () {
                            // 用户确认分享后执行的回调函数
                        },
                        cancel: function () {
                            // 用户取消分享后执行的回调函数
                        }
                    });

                });

                wx.error(function(res){
                    if(GLOBAL_CONFIG.DEBUG){
                        $rootScope.toast(JSON.stringify(res));
                    }
                });

      }
      _reload();
      
  }

})();
